#pragma once

#include "GraphicD3D.h"
#include "DrawableD3D.h"

#include "GraphicFactory.h"
namespace D3Ds
{
	class GraphicFactoryD3D: public Graphics::GraphicFactory
	{
	private:
		//Static buffer
		GraphicD3D* m_GraphicD3D;
		
	public:
		GraphicFactoryD3D(Window& win);
		~GraphicFactoryD3D(void);

		virtual Graphics::Graphic2D * const GetGraphic2D();
		// Create or get a Drawable object from cache
		virtual Drawable* CreateDrawable(int width, int height);
		virtual Drawable* CreateDrawable(const std::string& filename,DWORD colorKey = 0);

	};
}